package com.gxar.quick.ar.server.base.model.user.vo.response;

import com.alibaba.fastjson2.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.Date;

/**
 * @author linsy
 * @version 1.0
 * @created 2023/11/8 17:37
 */
@Data
@ApiModel("用户信息响应模型")
public class UserInfoResponse {

    @ApiModelProperty("用户ID")
    @JSONField(name = "user_id")
    @JsonProperty("user_id")
    private String userId;
    @ApiModelProperty("套餐ID")
    @JSONField(name = "combo_id")
    @JsonProperty("combo_id")
    private String comboId;
    @ApiModelProperty("用户名")
    @JSONField(name = "name")
    @JsonProperty("name")
    private String name;
    @ApiModelProperty("用户头像")
    @JSONField(name = "avatar")
    @JsonProperty("avatar")
    private String avatar;
    @ApiModelProperty("套餐等级")
    @JSONField(name = "combo_grade")
    @JsonProperty("combo_grade")
    private Integer comboGrade;
    @ApiModelProperty("套餐等级名称")
    @JSONField(name = "combo_grade_name")
    @JsonProperty("combo_grade_name")
    private String comboGradeName;
    @ApiModelProperty("套餐开始时间")
    @JSONField(name = "combo_start_time")
    @JsonProperty("combo_start_time")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date comboStartTime;
    @ApiModelProperty("套餐结束时间")
    @JSONField(name = "combo_end_time")
    @JsonProperty("combo_end_time")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date comboEndTime;
    @ApiModelProperty("已使用浏览次数")
    @JSONField(name = "use_impressions_number")
    @JsonProperty("use_impressions_number")
    private Integer useImpressionsNumber;
    @ApiModelProperty("总浏览次数")
    @JSONField(name = "total_impressions_number")
    @JsonProperty("total_impressions_number")
    private Integer totalImpressionsNumber;
    @ApiModelProperty("首次使用")
    @JSONField(name = "first_use")
    @JsonProperty("first_use")
    private Boolean firstUse;

    {
        this.useImpressionsNumber = 0;
    }

}
